Submitted herewith this present application (and on deposit in the United States Patent and Trademark Office) is a microfiche appendix comprising source code of a present embodiment of the present invention. There are 340 frames contained in four pages of microfiche.
Understanding and processing natural language, as either spoken or written by humans, has long been a goal in the field of artificial intelligence. As computers have been programmed of late to perform awe-inspiring feats, such as defeating the world""s best human chess master in his game, other skills exhibited by humans are still seemingly beyond the reach of even the most powerful computers. Although a small child may not be able to play chess, that child typically has the facility to process and understand its native tongue. Computers, on the other hand, have yet to exhibit any significant level of mastery in the realm of natural language processing.
Understanding natural language requires that the recipient have both (1) linguistic knowledge of the particular language; and (2) sufficient world knowledge to carry on a meaningful discourse about a certain topic. One early attempt at simulating natural language skills included a program called ELIZA. To simply model human language skills, ELIZA matched input sentences from a human against simple input templates of keywords. An input template might, for example, take a group of related keywords and lump them together for the purposes of responding. Thus, words like xe2x80x9cfather, mother, brother, sisterxe2x80x9d might be grouped together for a response that relied on the concept of xe2x80x9cfamilyxe2x80x9d. Thus, with ELIZA, familiar words were recognized while the rest of the sentence was ignored and a response was generated based on the matched keywords.
Although the method for processing natural language was greatly simplified by the approach taken by ELIZA, there were several problem areas that needed to be addressed by this approach. One such problem area occurs in the situation where more than one input template matched a given input sentence. ELIZA solved this problem by associating a xe2x80x9crank numberxe2x80x9d for each keyword. ELIZA would then select the highest ranked word in the sentence for matching. This mechanism for resolving multiple template matches, although very easy to implement, is relatively unsophisticated in adequately capturing the semantic meaning of natural discourse.
Other, more sophisticated programs (termed xe2x80x9cBOTxe2x80x9ds herein) have since been developed to capture a deeper sense of a particular discourse""s meaning. As these BOTs became more sophisticated, more processing work needed to be accomplished to capture an adequate world knowledge (albeit about a limited range of topics) and linguistic knowledge. One of the major drawbacks is that early BOTs were written in very specific computer languages, such as C, PASCAL and the like. Thus, in order to create BOTs, its creator would need to author in this programming language. Additionally, modification of such BOTs were just as cumbersomexe2x80x94any change to a BOT would need to be made to source code in a complex programming language to be subsequently recompiled.
One early solution to the ease of creation and modification included the use of xe2x80x9cscriptingxe2x80x9d languages that allowed for the creation and modification of BOTs in a language more akin to English. In fact, ELIZA itself used xe2x80x9cscriptsxe2x80x9d to implement input sentence template matching.
Another problem with very early BOT creation tools was managing the complexity of English language interaction. For example, there were no models in ELIZA for the state of an on-going conversation. Thus, during the course of a conversation, a human user logged on to a BOT might talking about a xe2x80x9cmousexe2x80x9d in one thread of conversation where the mouse is of the mammalian type. Then, during another thread of conversation, the particular user could refer to a xe2x80x9cmousexe2x80x9d of a computer peripheral type. These early BOTs found it difficult to handle the semantic shift of word meaning.
Another example is the xe2x80x9cpronounxe2x80x9d problem. During the course of a lengthy conversation, a human user can use the pronoun xe2x80x9citxe2x80x9d to refer to an object that has long been discussed, but not immediately. Humans typically look for other semantic clues in the conversation to correctly bind the word xe2x80x9citxe2x80x9d to the object meant. Early BOTs lacked adequate features to decipher these semantic clues to glean the correct meaning.
One early attempt to resolve these problems is described in an article by Michael Mauldin entitled xe2x80x9cCHATTERBOTs, TINYMUDs, and the Turing Test: Entering the Loebner Prize Competitionxe2x80x9d. Mauldin describes xe2x80x9cactivation networksxe2x80x9d that are networks of response nodes that are connected to other responses through weighted edges. Prior to operation, an activation network would be created or instantiated by defining a list of subject-response nodes, whereby any given subject that may be discussed by a human user would elicit a given response as defined by a node. Different, but related, subject-response nodes would be connected via edges having a pre-defined weight. Subject-response nodes would themselves carries an activation numeric value that would vary during the course of operation of the BOT. As the subject discussed by the human user matches a given subject of a node, that node""s activation value would increase. Similarly, the activation value of adjacent subject-response node to that first node might also increase or decrease according to the weight given their connecting edge.
The main drawback with activation networks is their difficulty in creating and maintaining them. For example, in designing the initial network, it is difficult to accurately assign any meaningful activation values for particular nodes and the weights accorded to their edges. Additionally, it is difficult to debug such systems because any adjustment of the weights and values will have unpredictable effects later. The problem is that the numerical assignment of natural language topics is a hard task to accomplish with meaningful results.
Thus, there is a need in the art to have a means for easily creating virtual BOTs that naturally focuses the attention of the BOT to resolve inherent ambiguities of natural language that humans do so well atxe2x80x94without the need to assign somewhat arbitrary numerical values that have unforeseen or unintended consequences and interactions.
There is also a need to have attention-focusing mechanisms that are easily extensible and modifiable without the need for a major re-coding effort in a traditional computer programming language.
There is also a need for a virtual robot to have an automatic learning feature that allows it to learn from its interactions with users and improve its own behavior.
The present invention meets these aforementioned needs by providing a variety of mechanisms for focusing the attention of a virtual robot or BOT. These mechanisms may be either explicit, such as an actual command, provided in the script program; or the focusing mechanism may be performed automatically by the BOT itself.
In one aspect of the present invention, in an automated interface program designed to interact and communicate with users, said program executing actions when a category among a set of predefined categories is activated, a method for focusing the attention of the automated interface program, the steps of said method comprising:
defining a list of categories activatable by said program;
maintaining an attention focus list, said focus list comprising an ordered list of categories;
executing actions associated with categories that are activated;
re-ordering said attention focus list during the course of interaction, said re-ordering being dependent upon which categories were activated.
Other aspects of the focusing mechanisms, explicit or automatic, are disclosed in the below description when read in conjunction with the accompanying figures.